package com.CMS.server;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.CMS.client.ItemMenuService;
import com.CMS.server.dao.ItemMenuDao;
import com.CMS.server.dao.MenuDao;
import com.CMS.server.domain.ItemMenu;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class RpcItemMenu extends RemoteServiceServlet implements ItemMenuService{


	/**
	 * 
	 */
	private static final long serialVersionUID = -7472376181794054461L;

	@Override
	public void create(ItemMenu item) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public List<ItemMenu> getItems() {
		ItemMenuDao dao = new ItemMenuDao();
		return dao.getAll();
	}

	@Override
	public void create(String description, long idMenu) {
		ItemMenuDao dao = new ItemMenuDao();
		ItemMenu item = dao.getEntity(idMenu);
		ItemMenu i = new ItemMenu();
		i.setDescription(description);
		i.setPadre(item);
		dao.createEntity(i);
	}

	@Override
	public void update(String description, long idSubItem, boolean flagDelete, long id) {
		ItemMenuDao dao = new ItemMenuDao();
		List<ItemMenu> subItem = new ArrayList<ItemMenu>();
		ItemMenu item = null;
		item = dao.getEntity(id);
		item.setDescription(description);
		item.setModDate(new Date());
		item.setFlagDelete(flagDelete);
		subItem.add(dao.getEntity(idSubItem));
		item.setPadre(item);
		dao.updateEntity(item);
	}

	@Override
	public void delete(long id) {
		ItemMenuDao dao = new ItemMenuDao();
		dao.deleteEntity(dao.getEntity(id));
	}

	@Override
	public void create(String description, long idMenu, long idItem) {
		ItemMenuDao dao = new ItemMenuDao();
		MenuDao mDao = new MenuDao();
		ItemMenu item = new ItemMenu();
		item.setDescription(description);
		if(idItem > 0)
			item.setPadre(dao.getEntity(idItem));
		item.setMenu(mDao.getEntity(idMenu));
		dao.createEntity(item);
	}

	@Override
	public ItemMenu getItem(long idItem) {
		ItemMenuDao dao = new ItemMenuDao();
		return dao.getEntity(idItem);
	}

	@Override
	public void updateItem(String description, long id, long idMenu,
			long idPadre, boolean flagDelete) {
		ItemMenuDao dao = new ItemMenuDao();
		MenuDao mDao = new MenuDao();
		ItemMenuDao iDao = new ItemMenuDao();
		ItemMenu item = dao.getEntity(id);
		item.setDescription(description);
		item.setModDate(new Date());
		item.setFlagDelete(flagDelete);
		item.setMenu(mDao.getEntity(idMenu));
		if(idPadre > 0)
			item.setPadre(iDao.getEntity(idPadre));
		dao.updateEntity(item);
	}

}
